﻿#include "navigationbar.h"
#include <QLabel>

NavigationBar::NavigationBar(QWidget* parent) : QWidget(parent)
{
    // 设置横向布局
    m_layout = new QHBoxLayout(this);
    m_layout->setAlignment(Qt::AlignLeft);
    setLayout(m_layout);
}

// 添加导航项
void NavigationBar::addItem(const QString& text, const QPixmap& icon)
{
    // 如果不是第一个导航项，添加分隔符
    if (!m_items.isEmpty())
    {
        QLabel* separator = new QLabel("/", this);
        separator->setStyleSheet("color: gray;"); // 设置分隔符样式
        m_layout->addWidget(separator);
    }

    // 添加导航项
    NavigationItem* item = new NavigationItem(text, icon, this);
    m_layout->addWidget(item);
    m_items.append(item);

    // 连接点击事件信号
    connect(item, &NavigationItem::clicked, this, &NavigationBar::onItemClicked);
}

// 设置图片大小
void NavigationBar::setIconSize(const QSize& size)
{
    for (NavigationItem* item : m_items)
    {
        item->setIconSize(size);
    }
}

// 处理导航项点击事件
void NavigationBar::onItemClicked()
{
    // 找到被点击的导航项
    NavigationItem* item = qobject_cast<NavigationItem*>(sender());
    if (item)
    {
        int index = m_items.indexOf(item);
        if (index >= 0)
        {
            // 设置选中状态
            for (NavigationItem* navItem : m_items)
            {
                navItem->setSelected(navItem == item);
            }

            // 发送点击事件信号
            emit itemClicked(index);
        }
    }
}
